#ifndef __NCU_PARAM_H__
#define __NCU_PARAM_H__

#include <stdint.h>

#pragma pack(1)
typedef struct {
	uint32_t NCU_CTRL_FLAGS;
	uint32_t NCU_FUNCS;
	uint32_t NCU_GAIN_0;
	uint32_t NCU_GAIN_1;
	uint32_t NCU_GAIN_2;
	uint32_t NCU_GAIN_3;
	uint32_t NCU_GAIN_4;
	uint32_t NCU_GAIN_5;
	uint32_t NCU_GAIN_6;
	uint32_t NCU_GAIN_7;
	uint32_t NCU_GAIN_8;
	uint32_t NCU_L_SDN_EN;
	uint32_t NCU_L_TDN_EN;
	uint32_t NCU_L_LCK_EN;
	uint32_t NCU_L_CNA_THRES;
	uint32_t NCU_L_CNA_STREN;
	uint32_t NCU_L_LID_THRES;
	uint32_t NCU_L_LID_STREN;
	uint32_t NCU_L_LIB_THRES;
	uint32_t NCU_L_LIB_STREN;
	uint32_t NCU_L_SMJ_THRES[9];
	uint32_t NCU_L_OSB_THRES;
	uint32_t NCU_L_OSB_SLOPE;
	uint32_t NCU_L_OSD_THRES;
	uint32_t NCU_L_OSD_SLOPE;
	uint32_t NCU_L_OMB_THRES;
	uint32_t NCU_L_OMB_SLOPE;
	uint32_t NCU_L_OMD_THRES;
	uint32_t NCU_L_OMD_SLOPE;
	uint32_t NCU_L_EDG_TYPE;
	uint32_t NCU_L_EDG_DIFF_SLOPE[9];
	uint32_t NCU_L_EDG_DIFF_LOW[9];
	uint32_t NCU_L_EDG_DIFF_HIGH[9];
	uint32_t NCU_L_ESA_PEAK;
	uint32_t NCU_L_ESA_STREN_L;
	uint32_t NCU_L_ESA_THRES[9];
	uint32_t NCU_L_ESA_STREN_H[9];
	uint32_t NCU_L_EMA_PEAK;
	uint32_t NCU_L_EMA_STREN_L;
	uint32_t NCU_L_EMA_THRES[9];
	uint32_t NCU_L_EMA_STREN_H[9];
	uint32_t NCU_L_PSA_PEAK;
	uint32_t NCU_L_PSA_STREN_L;
	uint32_t NCU_L_PSA_THRES[9];
	uint32_t NCU_L_PSA_STREN_H[9];
	uint32_t NCU_L_PMA_PEAK;
	uint32_t NCU_L_PMA_STREN_L;
	uint32_t NCU_L_PMA_THRES[9];
	uint32_t NCU_L_PMA_STREN_H[9];
	uint32_t NCU_L_BTA_STREN[9];
	uint32_t NCU_L_BSA_STREN[9];
	uint32_t NCU_L_BMA_STREN[9];
	uint32_t NCU_L_TDN_TYPE[9];
	uint32_t NCU_L_TDN_STEP[9];
	uint32_t NCU_L_TDN_RISEL[9];
	uint32_t NCU_L_TDN_MAXNUM[9];
	uint32_t NCU_L_TDN_BDV_ADJ_1[9];
	uint32_t NCU_L_TDN_BDV_ADJ_2[9];
	uint32_t NCU_L_TDN_BDV_ADJ_3[9];
	uint32_t NCU_L_TDN_BDV_ADJ_4[9];
	uint32_t NCU_L_TDN_BDV_ADJ_5[9];
	uint32_t NCU_L_TDN_WIN[9];
	uint32_t NCU_L_TDN_LEVEL[9];
	uint32_t NCU_L_TDN_NUM[9];
	uint32_t NCU_L_TDN_LMT[9];
	uint32_t NCU_L_TDN_PEAK[9];
	uint32_t NCU_L_TDN_STREN_L[9];
	uint32_t NCU_L_TDN_THRES[9];
	uint32_t NCU_L_TDN_STREN_H[9];
	uint32_t NCU_L_TDN_SBASE[9];
	uint32_t NCU_L_SDN_STREN_P[9];
	uint32_t NCU_L_SDN_STREN_G[9];
	uint32_t NCU_C_SDN_EN;
	uint32_t NCU_C_TDN_EN;
	uint32_t NCU_C_LCK_EN;
	uint32_t NCU_C_CNA_THRES;
	uint32_t NCU_C_CNA_STREN;
	uint32_t NCU_C_SMJ_THRES[9];
	uint32_t NCU_C_OSB_THRES;
	uint32_t NCU_C_OSB_SLOPE;
	uint32_t NCU_C_OSD_THRES;
	uint32_t NCU_C_OSD_SLOPE;
	uint32_t NCU_C_OMB_THRES;
	uint32_t NCU_C_OMB_SLOPE;
	uint32_t NCU_C_OMD_THRES;
	uint32_t NCU_C_OMD_SLOPE;
	uint32_t NCU_C_EDG_TYPE;
	uint32_t NCU_C_EDG_DIFF_SLOPE[9];
	uint32_t NCU_C_EDG_DIFF_LOW[9];
	uint32_t NCU_C_EDG_DIFF_HIGH[9];
	uint32_t NCU_C_ESA_PEAK;
	uint32_t NCU_C_ESA_STREN_L;
	uint32_t NCU_C_ESA_THRES[9];
	uint32_t NCU_C_ESA_STREN_H[9];
	uint32_t NCU_C_EMA_PEAK;
	uint32_t NCU_C_EMA_STREN_L;
	uint32_t NCU_C_EMA_THRES[9];
	uint32_t NCU_C_EMA_STREN_H[9];
	uint32_t NCU_C_PSA_PEAK;
	uint32_t NCU_C_PSA_STREN_L;
	uint32_t NCU_C_PSA_THRES[9];
	uint32_t NCU_C_PSA_STREN_H[9];
	uint32_t NCU_C_PMA_PEAK;
	uint32_t NCU_C_PMA_STREN_L;
	uint32_t NCU_C_PMA_THRES[9];
	uint32_t NCU_C_PMA_STREN_H[9];
	uint32_t NCU_C_BSA_STREN[9];
	uint32_t NCU_C_BMA_STREN[9];
	uint32_t NCU_C_TDN_TYPE[9];
	uint32_t NCU_C_TDN_STEP[9];
	uint32_t NCU_C_TDN_MAXNUM[9];
	uint32_t NCU_C_TDN_BDV_ADJ_1[9];
	uint32_t NCU_C_TDN_BDV_ADJ_2[9];
	uint32_t NCU_C_TDN_BDV_ADJ_3[9];
	uint32_t NCU_C_TDN_BDV_ADJ_4[9];
	uint32_t NCU_C_TDN_BDV_ADJ_5[9];
	uint32_t NCU_C_TDN_WIN[9];
	uint32_t NCU_C_TDN_LEVEL[9];
	uint32_t NCU_C_TDN_NUM[9];
	uint32_t NCU_C_TDN_LMT[9];
	uint32_t NCU_C_TDN_PEAK[9];
	uint32_t NCU_C_TDN_STREN_L[9];
	uint32_t NCU_C_TDN_THRES[9];
	uint32_t NCU_C_TDN_STREN_H[9];
	uint32_t NCU_C_TDN_SBASE[9];
	uint32_t NCU_C_SDN_THRES[9];
	uint32_t NCU_C_SDN_STREN[9];
} ncu_param;

typedef struct {
	uint32_t size;
	ncu_param day;
	ncu_param night;
	uint32_t crc_check;
} ncu_params;

#pragma pack()

#endif
